// let timer  =null; //不能将全局变量随便暴露
function debounce(fn, tick = 200) {
    //需要一个变量来储存定时器
    let timer = null;

    //需要向办法清除定时器
    //在当前函数return一个函数
    return function () {
        //让fn的this指向事件源
        fn = fn.bind(this)
        if (timer) {
            clearTimeout(timer)
        }
        timer = setTimeout(function () {
            fn()
        }, tick)
    }
}